Skip to main content
Version: 12.10.0

Demo mode

For the App Store review process, the App needs to behave similar to how a normal (logged-in) user would see and use the App. This is quite challenging as some functionalities are only available if you are logged in with a valid user. A "real" Test user is not possible due to regulatory restrictions. Hence a way of "mocking" certain functionalities that are only available when a user is not in need to be implemented. The already existing functionalities that are available when a user continues without login should stay the same as is. The Demo-Modus needs to handle all existing and upcoming features as well as incorporate AOK MKF. This means, that for any upcoming feature it needs to be validated if the feature requires additional effort to use the Demo-Modus.

In order to provide as much functionalities as possible for the App Store review process, we will introduce a Demo-Modus of the App. This Demo-Modus is triggered when a certain action in the App is performed. When the Demo-Modus is activated, it will trigger a flag inside the App which enables the Demo-Modus. On specified functionalities that App will check for this flag and either display mocked functionalities and using Mock data or (if not enabled) behave as is.

Implementation

Trigger

The Demo-Modus is triggered if the Button "Barriere melden" (PLATT-1364) from the Screen "Barrierefreiheit" is clicked 5 times. If the Button "Barriere melden" is clicked 5 times again, the Demo-Modus is deactivated.

Feature Flag

If the Demo-Modus is activated trough the trigger, a feature-flag within the App is set that enables the demo-modus. This feature-flag is disabled by default.

The App already has an option to use the App without login. If the Demo-Modus is enabled, the App should show any content and behaviour that is used when the user choose this option. If necessary the App should also change its behaviour (e.g. clicking/starting Login process, saving consents) when the Demo-Modus is enabled.

Overview of the solution

  • Creating a dedicated backend for demo environment
  • Switching to demo mode with a hidden klick on the last screen bevor login
  • Authenticating against the MOC-OGS with dedicated demo users
  • Using the productive microservices without changes or with minimal changes configured with build flags
  • The goal is a minimum of changes in the app and microservices